<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    
</body>
<script src=""></script>
<script>
    // 对象：被观察者（发布者）  某个属性变化
    // 观察者（订阅者）    观察某个属性
    // 满足某种条件+观察者执行相应的响应操作


    var child={};
    child.list=[];  //定义观察者的回调函数
    // 添加观察者
    child.listen=function(key,fn){
        if(!this.list[key]){
            this.list[key]=[]
        }
        this.list[key].push(fn)
    }

    //如果被观察者的值发生变化 ，那么执行的方法
    child.tigger=function(key,value){
        for(var i=0;i<this.list[key].length;i++){
            var fn=this.list[key][i++]
            fn(key,value)
        }
    }

    child.listen('key1',function(key,value){
        console.log([key,value])
    })
    child.listen('key1',function(key,value){
        console.log([key,value])
    })
    child.listen('key2',function(key,value){
        console.log([key,value])
    })

    child.tigger('key1',40)
    child.tigger('key1',40)
    child.tigger('key2',60)




</script>
</html>